package com.tjbank.cssys.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import com.tjbank.cssys.web.config.GetUserCodeFromToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.tjbank.cssys.framework.base.api.BaseController;
import com.tjbank.cssys.framework.base.api.Response;
import com.tjbank.cssys.api.PostService;
import com.tjbank.cssys.dto.PostDTO;

import java.util.Date;
import java.util.UUID;

/**
 * 岗位
 * 
 * Package : com.tansun.magicube.iam.web.controller
 * 
 * @author -- lijiangtao 2020年6月29日 下午2:05:03
 *
 */
@RestController
public class PostController extends BaseController {

    @Autowired
    private PostService postService;
    private static Logger logger = LoggerFactory.getLogger(PostController.class);
    /**
     * 新增岗位
     * 
     * @param postDTO
     * @return
     * @author -- lijiangtao 2020年5月21日 下午9:18:11
     */
    @PostMapping("/post")
    public Response<?> addPost(@RequestBody @Valid PostDTO postDTO , HttpServletRequest request) {

        return this.success(postService.addPost(postDTO));
    }

    /**
     * 根据租户Code分页查询岗位
     * 
     * @param postDTO
     * @param pageable
     * @return
     * @author -- lijiangtao 2020年5月22日 上午9:49:58
     */
    @GetMapping("/post")
    public Response<?> queryPost(PostDTO postDTO, Pageable pageable ,HttpServletRequest request) {

        return this.success(postService.queryPost(postDTO, pageable));
    }

    /**
     * 更新
     * 
     * @param postDTO
     * @return
     * @author -- lijiangtao 2020年5月31日 下午11:44:14
     */
    @PutMapping("/post")
    public Response<?> updatePost(@RequestBody @Valid PostDTO postDTO ,HttpServletRequest request) {

        return this.success(postService.updatePost(postDTO));
    }

    /**
     * 删除
     * 
     * @param postId
     * @return
     * @author -- lijiangtao 2020年6月29日 下午2:10:15
     */
    @DeleteMapping("/post/{postId}")
    public Response<?> deletePost(@PathVariable String postId ,HttpServletRequest request) {


        return this.success(postService.deletePost(postId));
    }

    /**
     * 根据岗位ID查询
     * 
     * @param postId
     * @return
     * @author -- lijiangtao 2020年7月14日 下午1:48:46
     */
    @GetMapping("/post/{postId}")
    public Response<?> queryPostById(@PathVariable String postId ,HttpServletRequest request) {

        return this.success(postService.queryPostById(postId));
    }
}
